\hypertarget{vector_8h}{
\section{linalg/vector.h \-File \-Reference}
\label{vector_8h}\index{linalg/vector.\-h@{linalg/vector.\-h}}
}


\-Define linear-\/algebra vector classes.  


{\ttfamily \#include $<$nih/basic/types.\-h$>$}\*
{\ttfamily \#include $<$nih/basic/numbers.\-h$>$}\*
{\ttfamily \#include $<$vector$>$}\*
{\ttfamily \#include $<$algorithm$>$}\*
{\ttfamily \#include $<$cmath$>$}\*
{\ttfamily \#include $<$nih/linalg/vector\-\_\-inline.\-h$>$}\*
\subsection*{\-Classes}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structnih_1_1_vector}{nih\-::\-Vector$<$ T, D\-I\-M $>$}
\item 
struct \hyperlink{structnih_1_1_vector_3_01_t_00_012_01_4}{nih\-::\-Vector$<$ T, 2 $>$}
\item 
struct \hyperlink{structnih_1_1_vector_3_01_t_00_013_01_4}{nih\-::\-Vector$<$ T, 3 $>$}
\item 
struct \hyperlink{structnih_1_1_vector_3_01_t_00_014_01_4}{nih\-::\-Vector$<$ T, 4 $>$}
\item 
struct \hyperlink{structnih_1_1_vector__traits}{nih\-::\-Vector\-\_\-traits$<$ T $>$}
\item 
struct \hyperlink{structnih_1_1_vector__traits_3_01_t_01_5_01_4}{nih\-::\-Vector\-\_\-traits$<$ T $\ast$ $>$}
\item 
struct \hyperlink{structnih_1_1_vector__traits_3_01_vector_3_01_t_00_01_d_i_m_01_4_01_4}{nih\-::\-Vector\-\_\-traits$<$ Vector$<$ T, D\-I\-M $>$ $>$}
\item 
struct \hyperlink{structnih_1_1_dynamic__vector}{nih\-::\-Dynamic\-\_\-vector$<$ T $>$}
\item 
struct \hyperlink{structnih_1_1_vector__traits_3_01_dynamic__vector_3_01_t_01_4_01_4}{nih\-::\-Vector\-\_\-traits$<$ Dynamic\-\_\-vector$<$ T $>$ $>$}
\end{DoxyCompactItemize}
\subsection*{\-Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__vectors_gabbcc1381565199b14a44e3afc944ca17}{
typedef \-Vector$<$ float, 2 $>$ {\bfseries nih\-::\-Vector2f}}
\label{group__vectors_gabbcc1381565199b14a44e3afc944ca17}

\item 
\hypertarget{group__vectors_ga0647b3ed4341a247c1e76e5b53093b5f}{
typedef \-Vector$<$ float, 3 $>$ {\bfseries nih\-::\-Vector3f}}
\label{group__vectors_ga0647b3ed4341a247c1e76e5b53093b5f}

\item 
\hypertarget{group__vectors_ga7995ea0516a644636ad92f4b7bc04eaa}{
typedef \-Vector$<$ float, 4 $>$ {\bfseries nih\-::\-Vector4f}}
\label{group__vectors_ga7995ea0516a644636ad92f4b7bc04eaa}

\item 
\hypertarget{group__vectors_ga4fc7e6a2c6996a3e747fbedbb67e1863}{
typedef \-Vector$<$ double, 2 $>$ {\bfseries nih\-::\-Vector2d}}
\label{group__vectors_ga4fc7e6a2c6996a3e747fbedbb67e1863}

\item 
\hypertarget{group__vectors_ga7c1aad15ff15343ac537134d394ef70c}{
typedef \-Vector$<$ double, 3 $>$ {\bfseries nih\-::\-Vector3d}}
\label{group__vectors_ga7c1aad15ff15343ac537134d394ef70c}

\item 
\hypertarget{group__vectors_gaf88cc8ac3ee4154632f9ab07406e2921}{
typedef \-Vector$<$ double, 4 $>$ {\bfseries nih\-::\-Vector4d}}
\label{group__vectors_gaf88cc8ac3ee4154632f9ab07406e2921}

\item 
\hypertarget{group__vectors_ga5ce7ab86d5f4892fa9c675180f5859d7}{
typedef \-Vector$<$ int32, 2 $>$ {\bfseries nih\-::\-Vector2i}}
\label{group__vectors_ga5ce7ab86d5f4892fa9c675180f5859d7}

\item 
\hypertarget{group__vectors_gad0b51f8145e2a7f3065115fecdfd8609}{
typedef \-Vector$<$ int32, 3 $>$ {\bfseries nih\-::\-Vector3i}}
\label{group__vectors_gad0b51f8145e2a7f3065115fecdfd8609}

\item 
\hypertarget{group__vectors_ga2d7d8141688508f19e965e06e48636de}{
typedef \-Vector$<$ int32, 4 $>$ {\bfseries nih\-::\-Vector4i}}
\label{group__vectors_ga2d7d8141688508f19e965e06e48636de}

\end{DoxyCompactItemize}
\subsection*{\-Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-N\-I\-H\-\_\-\-H\-O\-S\-T\-\_\-\-D\-E\-V\-I\-C\-E \*
\-Vector$<$ \-T, 2 $>$ \hyperlink{group__vectors_gab815e30e4a8c47b3ff177de0ba4162cb}{nih\-::xy} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-N\-I\-H\-\_\-\-H\-O\-S\-T\-\_\-\-D\-E\-V\-I\-C\-E \*
\-Vector$<$ \-T, 2 $>$ \hyperlink{group__vectors_gaa33a532874bb7f0c3977391f83dc64a3}{nih\-::yx} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-N\-I\-H\-\_\-\-H\-O\-S\-T\-\_\-\-D\-E\-V\-I\-C\-E \*
\-Vector$<$ \-T, 3 $>$ \hyperlink{group__vectors_ga283f58e199d448be6746baec9dec6ac1}{nih\-::xyz} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-N\-I\-H\-\_\-\-H\-O\-S\-T\-\_\-\-D\-E\-V\-I\-C\-E \*
\-Vector$<$ \-T, 3 $>$ \hyperlink{group__vectors_ga789568ee5abe245a1789c972459d9208}{nih\-::xzy} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-N\-I\-H\-\_\-\-H\-O\-S\-T\-\_\-\-D\-E\-V\-I\-C\-E \*
\-Vector$<$ \-T, 3 $>$ \hyperlink{group__vectors_ga8ba75af33f38985f639aa3f3abe0dce2}{nih\-::zyx} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-N\-I\-H\-\_\-\-H\-O\-S\-T\-\_\-\-D\-E\-V\-I\-C\-E \*
\-Vector$<$ \-T, 3 $>$ \hyperlink{group__vectors_ga531fcf7af9a93262536231c3fb69cb4f}{nih\-::zxy} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-N\-I\-H\-\_\-\-H\-O\-S\-T\-\_\-\-D\-E\-V\-I\-C\-E \*
\-Vector$<$ \-T, 3 $>$ \hyperlink{group__vectors_gaacc6c8319788b93e1cf61288299530ca}{nih\-::yxz} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-N\-I\-H\-\_\-\-H\-O\-S\-T\-\_\-\-D\-E\-V\-I\-C\-E \*
\-Vector$<$ \-T, 3 $>$ \hyperlink{group__vectors_ga5bae4031dc463ce54993a932a5671a17}{nih\-::yzx} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E bool \hyperlink{group__vectors_gaabd17838f41c1637cb84a3cfe31dfb0b}{nih\-::operator==} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E bool \hyperlink{group__vectors_ga884852dfe6e126e524af6c966fd3fa8e}{nih\-::operator!=} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_ga400f2fbe2094965df70010d98a05e1fc}{nih\-::operator$\ast$} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-T op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_gafe00990ed787cec75b986c394b7f5e0f}{nih\-::operator/} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-T op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_gaea85e6f752c95162ffe3388dd87d57d4}{nih\-::operator$\ast$} (const \-T op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \& \hyperlink{group__vectors_gabaaa34dafadbdbaaff130b02d28b3ad1}{nih\-::operator$\ast$=} (\-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-T op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_ga9235b9ea803b8d0ef379565a3ff7dd76}{nih\-::operator+} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_ga8782aba246b1da852d9f4390d22336f8}{nih\-::operator-\/} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_gafd7b9505e791364aa7e9b2d4598d00a6}{nih\-::operator$\ast$} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_ga7989586a3f3db4aa98a7866a4cdf080b}{nih\-::operator/} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \& \hyperlink{group__vectors_ga4226e5c3bf0305cf0a0459bf43564223}{nih\-::operator+=} (\-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \& \hyperlink{group__vectors_ga6c534bcb2f6acc627ea0988b2de4f73e}{nih\-::operator-\/=} (\-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \& \hyperlink{group__vectors_ga9719feff779258b2681dc8e81ee1a592}{nih\-::operator$\ast$=} (\-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \& \hyperlink{group__vectors_ga04e63000d70a03c13098b6b7303a29e9}{nih\-::operator/=} (\-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \& \hyperlink{group__vectors_gabcfc0bf4057eca196b46247e7294a526}{nih\-::operator/=} (\-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-T op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_ga0f199097d81599a09c0607600e63b26a}{nih\-::operator-\/} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_ga0de5bc91fec52d0b92e059ebf5d389ec}{nih\-::intensity} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v)
\item 
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_ga5aba2566a39c58297e8f97bcf771519f}{nih\-::intensity} (const \-T v)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_ga299bb7e770db20680a383864db4bd843}{nih\-::dot} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, 3u $>$ \hyperlink{group__vectors_ga14de1c4465c863797732d372f933a932}{nih\-::cross} (const \-Vector$<$ \-T, 3u $>$ \&op1, const Vector$<$ T, 3u $>$ \&op2)
\item 
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, 3 $>$ \hyperlink{group__vectors_ga45b100c1ab0f691ea58662e70c0801c3}{nih\-::reflect} (const \-Vector$<$ \-T, 3 $>$ \-I, const \-Vector$<$ \-T, 3 $>$ \-N)
\item 
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-Vector$<$ \-T, 3 $>$ \hyperlink{group__vectors_gac2324a31b7a178eaea07e98f0b13f292}{nih\-::orthogonal} (const \-Vector$<$ \-T, 3 $>$ v)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_gad840e1ac601434335deb2ac40bdf71dc}{nih\-::euclidean\-\_\-distance} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_ga21d1cd79e48416f289f7b0e55f3b32dc}{nih\-::square\-\_\-euclidean\-\_\-distance} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_gaef3221bb95a71d1743f7df1673082cbf}{nih\-::norm} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_ga9c4ac20ce07631b820678349b4c46698}{nih\-::sq\-\_\-norm} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&op)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_gae244399ef06f44b09f0a908aa406c037}{nih\-::normalize} (const \-Vector$<$ \-T, \-D\-I\-M $>$ v)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_ga643f06fe0c1d7d9d1ae9fe81e61c389e}{nih\-::min\-\_\-comp} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_gab4b34a60142a60bb290dfba1709c85f4}{nih\-::max\-\_\-comp} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v)
\item 
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_ga0d2289c0f68f0b9f497a1e4bc62399e0}{nih\-::min\-\_\-comp} (const \-Vector$<$ \-T, 3 $>$ \&v)
\item 
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T \hyperlink{group__vectors_gafccc66f85211e07bb1abee7f8fc0a281}{nih\-::max\-\_\-comp} (const \-Vector$<$ \-T, 3 $>$ \&v)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E uint32 \hyperlink{group__vectors_ga549a2d3c8b77b652dc1cd56c1d119b77}{nih\-::max\-\_\-element} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_ga5809911d15c32de18955c59865379695}{nih\-::min} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_gab2b34b1991185fc29890973777b60e54}{nih\-::max} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v1, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v2)
\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E uint32 \hyperlink{group__vectors_ga22cda565844e9049dd1438a376c2e198}{nih\-::largest\-\_\-dim} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v)
\begin{DoxyCompactList}\small\item\em compute the largest dimension of a given vector \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_ga396a9bd50b2cf3f00afd4f806ce544f3}{nih\-::face\-\_\-forward} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&n, const \-Vector$<$ \-T, \-D\-I\-M $>$ \&view)
\begin{DoxyCompactList}\small\item\em return a normal facing in the opposite direction wrt the view vector \end{DoxyCompactList}\item 
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-N\-I\-H\-\_\-\-D\-E\-V\-I\-C\-E \*
\-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-Vector$<$ \-T, \-D\-I\-M $>$ \hyperlink{group__vectors_ga278bc40e135ff21dd4c80375feccc703}{nih\-::mod} (const \-Vector$<$ \-T, \-D\-I\-M $>$ \&v, const float m)
\begin{DoxyCompactList}\small\item\em compute the modulus of a vector \end{DoxyCompactList}\item 
\hypertarget{group__vectors_ga42ddf0baa76ea97ab1ba69f017746b64}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T bool {\bfseries nih\-::operator==} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_ga42ddf0baa76ea97ab1ba69f017746b64}

\item 
\hypertarget{group__vectors_ga19ea070e035fcdc97bbab34cdfde4c10}{
{\footnotesize template$<$typename T , size\-\_\-t \-D\-I\-M$>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T bool {\bfseries nih\-::operator!=} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_ga19ea070e035fcdc97bbab34cdfde4c10}

\item 
\hypertarget{group__vectors_gad6b82f45e24cda7119205693d7235750}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::operator$\ast$} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-T op2)}
\label{group__vectors_gad6b82f45e24cda7119205693d7235750}

\item 
\hypertarget{group__vectors_ga866cbec9ab0c98fda2dd23d72fa3394c}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::operator/} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-T op2)}
\label{group__vectors_ga866cbec9ab0c98fda2dd23d72fa3394c}

\item 
\hypertarget{group__vectors_gaa682bf56e1568bea95c4a02ef638ed42}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::operator$\ast$} (const \-T op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_gaa682bf56e1568bea95c4a02ef638ed42}

\item 
\hypertarget{group__vectors_gaafcb7f500fcb5c8227c8c0b5f0161493}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ \& {\bfseries nih\-::operator$\ast$=} (\-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-T op2)}
\label{group__vectors_gaafcb7f500fcb5c8227c8c0b5f0161493}

\item 
\hypertarget{group__vectors_ga76724637f0956192e7a27a921043fa37}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::operator+} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_ga76724637f0956192e7a27a921043fa37}

\item 
\hypertarget{group__vectors_ga6d28166a3044ce64d8a2ab00822cb0d4}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::operator-\/} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_ga6d28166a3044ce64d8a2ab00822cb0d4}

\item 
\hypertarget{group__vectors_gaad54f453a918650977e577d1f1295942}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::operator$\ast$} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_gaad54f453a918650977e577d1f1295942}

\item 
\hypertarget{group__vectors_gab31a91c8d2c51f20dd314272f8416391}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::operator/} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_gab31a91c8d2c51f20dd314272f8416391}

\item 
\hypertarget{group__vectors_gabb3d30c7da278fc844597f94d0a15fec}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ \& {\bfseries nih\-::operator+=} (\-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_gabb3d30c7da278fc844597f94d0a15fec}

\item 
\hypertarget{group__vectors_ga82cdc8251f47077b9f8c1039ef58cf49}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ \& {\bfseries nih\-::operator-\/=} (\-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_ga82cdc8251f47077b9f8c1039ef58cf49}

\item 
\hypertarget{group__vectors_gaed066074df6e2c212e0391c9ad7f3ab4}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ \& {\bfseries nih\-::operator$\ast$=} (\-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_gaed066074df6e2c212e0391c9ad7f3ab4}

\item 
\hypertarget{group__vectors_ga39a60ac993fe55bd154195143103db47}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ \& {\bfseries nih\-::operator/=} (\-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_ga39a60ac993fe55bd154195143103db47}

\item 
\hypertarget{group__vectors_gaea3d6db75903c3527b138f4f0fefca65}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ \& {\bfseries nih\-::operator/=} (\-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-T op2)}
\label{group__vectors_gaea3d6db75903c3527b138f4f0fefca65}

\item 
\hypertarget{group__vectors_ga95b070c73b1d688ad69d771bd8805c2a}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::operator-\/} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1)}
\label{group__vectors_ga95b070c73b1d688ad69d771bd8805c2a}

\item 
\hypertarget{group__vectors_ga1e83c791b1d46a853b46036c61531ebe}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T {\bfseries nih\-::intensity} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&v)}
\label{group__vectors_ga1e83c791b1d46a853b46036c61531ebe}

\item 
\hypertarget{group__vectors_ga72d06d3777274c5086cec87f3e99e461}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T {\bfseries nih\-::dot} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op1, const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op2)}
\label{group__vectors_ga72d06d3777274c5086cec87f3e99e461}

\item 
\hypertarget{group__vectors_ga49ad4aac876edfaa63728dc050676fba}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T {\bfseries nih\-::norm} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op)}
\label{group__vectors_ga49ad4aac876edfaa63728dc050676fba}

\item 
\hypertarget{group__vectors_ga9bb86f8547e3fa69786ebd68dc89057d}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T {\bfseries nih\-::sq\-\_\-norm} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&op)}
\label{group__vectors_ga9bb86f8547e3fa69786ebd68dc89057d}

\item 
\hypertarget{group__vectors_ga2cd050854a2ba194a8a51654c94ff3ca}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \*
\-Dynamic\-\_\-vector$<$ \-T $>$ {\bfseries nih\-::normalize} (const \-Dynamic\-\_\-vector$<$ \-T $>$ v)}
\label{group__vectors_ga2cd050854a2ba194a8a51654c94ff3ca}

\item 
\hypertarget{group__vectors_ga49b988bb0618de2ec668efe484c47e43}{
{\footnotesize template$<$typename T $>$ }\\\-N\-I\-H\-\_\-\-H\-O\-S\-T \-F\-O\-R\-C\-E\-\_\-\-I\-N\-L\-I\-N\-E \-T {\bfseries nih\-::max\-\_\-comp} (const \-Dynamic\-\_\-vector$<$ \-T $>$ \&v)}
\label{group__vectors_ga49b988bb0618de2ec668efe484c47e43}

\end{DoxyCompactItemize}


\subsection{\-Detailed \-Description}
\-Define linear-\/algebra vector classes. 